package com.wzdigit.wms.raw.domain.mid;

import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 采购订单信息
 * @TableName WMS_PO_DTL
 */
@TableName(value ="WMS_PO_DTL")
@Data
@Accessors(chain = true)
@KeySequence(value = "WMS_PO_DTL_SEQ", clazz = Integer.class)
public class PoDtl implements Serializable {
    /**
     * 采购订单明细ID
     */
    @TableId(value = "PO_DTL_ID" ,type = IdType.INPUT)
    private Long poDtlId;

    /**
     * 采购订单表头ID
     */
    @TableField(value = "PO_HEADER_ID")
    private Long poHeaderId;

    /**
     * 采购订单号
     */
    @TableField(value = "PO_NO")
    private String poNo;

    /**
     * 采购订单行号
     */
    @TableField(value = "PO_LINE_NO")
    private String poLineNo;

    /**
     * 货品
     */
    @TableField(value = "SKU_ID")
    private Long skuId;

    /**
     * 货品描述
     */
    @TableField(value = "SKU_DESC")
    private String skuDesc;

    /**
     * 货品英文描述
     */
    @TableField(value = "SKU_DESC_EN")
    private String skuDescEn;

    /**
     * 订单数量
     */
    @TableField(value = "ORDER_QTY")
    private BigDecimal orderQty;

    /**
     * 订单数量EA － 订购产品的数量。以所选择的包装代码的最小单位（主单位）为数
量单位的，并且是系统自动换算给出的，不能修改。例如包装单位为箱，1 箱 10 件，预期 2
箱，2 个数量字段的数值会分别是 2（箱）与 20（件）。
     */
    @TableField(value = "ORDER_QTY_EA")
    private BigDecimal orderQtyEa;

    /**
     * 收货数量
     */
    @TableField(value = "RCV_QTY")
    private BigDecimal rcvQty;

    /**
     * 收货数量EA － 系统已经确认收货的产品数量。同样是 2 个字段，分别对应所选单位和系
统主单位。由于采购订单并不直接用于收货，收货数量是在预期到货通知（ASN）关联采购
订单（PO）情况下，ASN 收货时，系统自动更新对应 PO 的收货数量。

     */
    @TableField(value = "RCV_QTY_EA")
    private BigDecimal rcvQtyEa;

    /**
     * 收货单位
     */
    @TableField(value = "UNIT")
    private String unit;

    /**
     * 收货时间
     */
    @TableField(value = "RCV_TIME")
    private Date rcvTime;

    /**
     * 释放数量
     */
    @TableField(value = "RELEASE_QTY")
    private BigDecimal releaseQty;

    /**
     * 库存性质(特殊采购性质)，K为寄售 ,E为销售订单,空白为标准
     */
    @TableField(value = "INV_ATTR")
    private String invAttr;

    /**
     * 库存类型，空白为非限制，X为质检，S为冻结
     */
    @TableField(value = "INV_TYPE")
    private String invType;

    /**
     * 库存地点
     */
    @TableField(value = "WHS_ID")
    private Long whsId;

    /**
     * 总体积
     */
    @TableField(value = "TOTAL_CUBIC")
    private BigDecimal totalCubic;

    /**
     * 总重量
     */
    @TableField(value = "TOTAL_GROSS_WEIGHT")
    private BigDecimal totalGrossWeight;

    /**
     * 总净重
     */
    @TableField(value = "TOTAL_NET_WEIGHT")
    private BigDecimal totalNetWeight;

    /**
     * 总价
     */
    @TableField(value = "TOTAL_PRICE")
    private BigDecimal totalPrice;

    /**
     * 批次属性1
     */
    @TableField(value = "LOT_ATTR_1")
    private String lotAttr1;

    /**
     * 批次属性2
     */
    @TableField(value = "LOT_ATTR_2")
    private String lotAttr2;

    /**
     * 批次属性3
     */
    @TableField(value = "LOT_ATTR_3")
    private String lotAttr3;

    /**
     * 批次属性4
     */
    @TableField(value = "LOT_ATTR_4")
    private String lotAttr4;

    /**
     * 批次属性5
     */
    @TableField(value = "LOT_ATTR_5")
    private String lotAttr5;

    /**
     * 批次属性6
     */
    @TableField(value = "LOT_ATTR_6")
    private String lotAttr6;

    /**
     * 批次属性7
     */
    @TableField(value = "LOT_ATTR_7")
    private String lotAttr7;

    /**
     * 批次属性8
     */
    @TableField(value = "LOT_ATTR_8")
    private String lotAttr8;

    /**
     * 批次属性9
     */
    @TableField(value = "LOT_ATTR_9")
    private String lotAttr9;

    /**
     * 批次属性10
     */
    @TableField(value = "LOT_ATTR_10")
    private String lotAttr10;

    /**
     * 批次属性11
     */
    @TableField(value = "LOT_ATTR_11")
    private String lotAttr11;

    /**
     * 批次属性12
     */
    @TableField(value = "LOT_ATTR_12")
    private String lotAttr12;

    /**
     * 数据来源
     */
    @TableField(value = "DATA_SOURCE")
    private String dataSource;

    /**
     * 用户自定义字段1
     */
    @TableField(value = "UDF1")
    private String udf1;

    /**
     * 用户自定义字段2
     */
    @TableField(value = "UDF2")
    private String udf2;

    /**
     * 用户自定义字段3
     */
    @TableField(value = "UDF3")
    private String udf3;

    /**
     * 用户自定义字段4
     */
    @TableField(value = "UDF4")
    private String udf4;

    /**
     * 用户自定义字段5
     */
    @TableField(value = "UDF5")
    private String udf5;

    /**
     * 备注
     */
    @TableField(value = "COMMENTS")
    private String comments;

    /**
     * 状态
     */
    @TableField(value = "STATUS")
    private Long status;

    /**
     * 创建人
     */
    @TableField(value = "CREATE_USER")
    private String createUser;

    /**
     * 创建时间
     */
    @TableField(value = "CREATE_TIME")
    private Date createTime;

    /**
     * 修改人
     */
    @TableField(value = "MODIFY_USER")
    private String modifyUser;

    /**
     * 修改时间
     */
    @TableField(value = "MODIFY_TIME")
    private Date modifyTime;

    /**
     * 工厂(组织)
     */
    @TableField(value = "FACTORY")
    private String factory;

    /**
     * 转出工厂(组织)
     */
    @TableField(value = "FM_FACTORY")
    private String fmFactory;

    /**
     * 退货项目
     */
    @TableField(value = "RETURN_PO")
    private String returnPo;

    /**
     * 交货已完成(完成标记)
     */
    @TableField(value = "COMP_FLAG")
    private String compFlag;

    /**
     * 删除项目(删除标记)
     */
    @TableField(value = "DEL_FLAG")
    private String delFlag;
    
    /**
     * 成品中心
     */
    @TableField(value = "COST_CENTER")
    private String costCenter;

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;
}